﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//
//struct S
//{
//	char name[20];
//	int age;
//	float score;
//};
//
//int main()
//{
//	char buf[200] = { 0 };
//	struct S s = { "张三",20,65.5f };
//	//将格式化数据转化为字符串存入buf数组
//	sprintf(buf, "%s %d %f", s.name, s.age, s.score);
//
//	//打印观察
//	//printf("1以字符串的形式：%s\n", buf);
//
//	struct S t = { 0 };
//	//在字符串中读取格式化的数据放在t数组中
//	sscanf(buf, "%s %d %f", t.name, &t.age, &t.score);
//
//	//打印观察
//	printf("2按照格式打印： %s %d %f\n", t.name, t.age, t.score);
//	return 0;
//}

//int main()
//{
//	int arr[] = { 1, 2, 3, 4, 5 };
//	int len = sizeof(arr) / sizeof(arr[0]);
//	FILE* pf = fopen("test.txt", "wb");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	//写数据
//	fwrite(arr, sizeof(arr[0]), len, pf);
//
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}
//


//int main()
//{
//	int arr[5] = { 0 };
//
//	FILE* pf = fopen("test.txt", "rb");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	//读数据
//	fread(arr, sizeof(arr[0]), 5, pf);//以二进制的形式从文件中读取5个整型的数据
//	for (int i = 0; i < 5; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}
//


//int main()
//{
//	int arr[5] = { 0 };
//
//	FILE* pf = fopen("test.txt", "rb");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//
//	int i = 0;
//	//读数据
//	while (fread(&arr[i], sizeof(int), 1, pf))//！=0
//	{
//		printf("%d ", arr[i]);
//		i++;
//	}
//
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}
//


//int main()
//{
//	FILE* pf = fopen("test.txt", "r");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	
//	//读文件
//	int ch = fgetc(pf);
//	fseek(pf,4, SEEK_CUR);
//	ch = fgetc(pf);
//	printf("%c\n", ch);
//
//	printf("%d\n", ftell(pf));
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}

//int main()
//{
//	FILE* pf = fopen("test.txt", "r");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//
//	//读文件
//	fseek(pf, 4, SEEK_SET);//光标偏移到4个字节之后
//	int ch = fgetc(pf);
//	printf("%c\n", ch);
//	
//	rewind(pf);//光标回到起始位置
//	ch = fgetc(pf);
//	printf("%c\n", ch);
//
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}

//int main()
//{
//	FILE* pf = fopen("test.txt", "r");//读
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//
//	//写
//	char ch = 0;
//	for (ch = 'a'; ch < 'z'; ch++)
//	{
//		fputc(ch, pf);
//	}
//
//	//判断是什么原因导致读取结束的
//	if (feof(pf))
//	{
//		printf("遇到文件末尾，读取正常结束\n");
//	}
//	else if (ferror(pf))
//	{
//		perror("fputc");
//	}
//
//	return 0;
//}

//#include <stdio.h>
//#include <windows.h>
////VS2022 WIN11环境测试 
//int main()
//{
//	FILE* pf = fopen("test.txt", "w");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//
//	fputs("abcdef", pf);//先将代码放在输出缓冲区 
//	printf("睡眠10秒-已经写数据了，打开test.txt文件，发现文件没有内容\n");
//	Sleep(10000);
//
//	printf("刷新缓冲区\n");
//	fflush(pf);//刷新缓冲区时，才将输出缓冲区的数据写到⽂件（磁盘） 
//	printf("再睡眠10秒-此时，再次打开test.txt文件，文件有内容了\n");
//	Sleep(10000);
//
//	fclose(pf);
//	//注：fclose在关闭⽂件的时候，也会刷新缓冲区 
//	pf = NULL;
//	return 0;
//}